#include "board.h"
#include "buzz.h"
#include "EC11.h"
#include "dma.h"

extern bit SpiDmaFlag;

void Common_Isr() interrupt 13
{
    uint8 GPIO1_INTF = P1INTF;

    if (GPIO1_INTF)
    {
        P1INTF = 0x00;
        // 正交编码器不用两个都判断上升,判断一个上升,另一个看电平就知道方向了
        // 改完之后好用多了，就是屏幕的刷新率上不去导致比较难用，因为SPI的DMA尝试失败了
        // 改SPI的传输分频也没用，或许这就是STC32G吧
        if (EC11_B_Pin)
        {
            EC11.encoRealVal++;
        }
        else
        {
            EC11.encoRealVal--;
        }
    }

    if (DMA_UR1T_STA & 0x01) // 发送完成中断标志为1时
    {
        DMA_UR1T_STA &= ~0x01; // 清零发送完成中断标志
        DMAUart1TxBusy = DISABLE;
    }
    if (DMA_UR1T_STA & 0x04) // 数据覆盖中断标志为1时
    {
        DMA_UR1T_STA &= ~0x04; // 清零数据覆盖中断标志
    }
    if (DMA_UR1R_STA & 0x01) // 接收完成中断标志为1时
    {
        DMA_UR1R_STA &= ~0x01; // 清零接收完成中断标志
        // DmaRxFlag = 1;	// 接收完成标志置1
    }
    if (DMA_UR1R_STA & 0x02) // 数据丢弃中断标志为1时
    {
        DMA_UR1R_STA &= ~0x02; // 清零数据丢弃中断标志
    }
}